// 封装 request  数据处理

//   请求基本路径
const baseURL = "https://api-hmugo-web.itheima.net/api/public/v1"

// 准备计数器变量，用于记录请求个数，🧨 注意这里是变量
let requestCount = 0;

// 解构出 url，...config 接收所有剩余参数
const request = (config) => {
    return new Promise((resolve, reject) => {
        // 请求前用户提示 - 导航栏的 loading
        uni.showNavigationBarLoading()
        // 计数器累加
        requestCount++
        uni.request({
            // 展开运算符把所有请求参数展开作为 request 的参数
            ...config,
            // 完整的请求地址拼接：基本路径 + 接口API
            url: baseURL + config.url,
            success: (res) => {
                resolve(res)
            },
            //失败执行的
            fail: (err) => {
                reject(err)
            },
            // 完成：不管成功或失败都执行
            complete: () => {
                requestCount--
                if (requestCount === 0) {
                    uni.hideNavigationBarLoading()
                }
            }
        });
    })
}

export default request